home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1999 / MacHack 1999.toast / The Hacks / DesktopDoubler / NubApp / Window.h < prev   
Encoding:
C/C++ Source or Header  |  1999-06-23  |  4.9 KB  |  155 lines  |  [TEXT/CWIE]

  1. #ifndef _WINDOW_
  2. #define _WINDOW_
  3.  
  4. #include <Dialogs.h>
  5. #include <MacTypes.h>
  6. #include <Windows.h>
  7. #include "LList.h"
  8.  
  9.  
  10. enum
  11. {
  12.     kFloater        = (1L << 0),
  13.     kDialog            = (1L << 1),
  14.     kModal            = (1L << 2),
  15.     kActive            = (1L << 3),
  16.     kSuspended        = (1L << 4)
  17. };
  18.  
  19.  
  20. typedef class Window
  21. {
  22.     public:
  23.         WindowPtr    fWindow;
  24.         UInt32        fFlags;
  25.         
  26.         virtual Boolean DoGetParam(OSType param,SInt32 *value) = 0;
  27.         virtual Boolean DoSetParam(OSType param,SInt32 value) = 0;
  28.         virtual void DoDialogEvent(EventRecord *event) = 0;
  29.         virtual void DoClose(void) = 0;
  30.         virtual void DoKey(UInt32 key,UInt32 modifiers) = 0;
  31.         virtual void DoClick(Point where,UInt32 modifiers,SInt32 part) = 0;
  32.         virtual void DoUpdate(void) = 0;
  33.         virtual void DoUpdateCursor(Point mouse,UInt32 modifiers) = 0;
  34.         virtual void DoIdleTime(EventRecord *event,Point mouse,UInt32 modifiers) = 0;
  35.         virtual void DoSetActivationState(Boolean isActive) = 0;
  36.         virtual void DoSetSuspensionState(EventRecord *event,Boolean isSuspended) = 0;
  37. } Window;
  38.  
  39.  
  40. typedef class WindowManager
  41. {
  42.     public:
  43.         virtual void DoAddWindow(Window *window) = 0;
  44.         virtual void DoDeleteWindow(Window *window) = 0;
  45.         virtual void DoClick(Point where,UInt32 modifiers,WindowPtr window,SInt32 part) = 0;
  46.         virtual void DoIdleTime(EventRecord *event,Point mouse,UInt32 modifiers) = 0;
  47.         virtual void DoActivation(WindowPtr window,Boolean isActivating) = 0;
  48.         virtual void DoSuspendResume(EventRecord *event,Boolean isSuspend) = 0;
  49.         
  50.         virtual Window *DoGetFrontWindow(void) = 0;
  51.         virtual Window *DoGetNextWindow(Window *window) = 0;
  52.         virtual Window *DoGetWindow(WindowPtr window) = 0;
  53. } WindowManager;
  54.  
  55.  
  56. typedef struct BaseWindowObject
  57. {
  58.     BaseWindowObject    *next;
  59.     WindowPtr            fWindowID;
  60.     Window                *fWindowObject;
  61. } BaseWindowObject;
  62.  
  63.  
  64. typedef class BaseWindowManager : public WindowManager
  65. {
  66.     protected:
  67.         BaseWindowObject *GetWindowObject(WindowPtr window);
  68.         
  69.     public:
  70.         LList<BaseWindowObject>        fWindowList;
  71.         Boolean                        fSuspended;
  72.         
  73.         BaseWindowManager(void);
  74.         
  75.         virtual void DoAddWindow(Window *window);
  76.         virtual void DoDeleteWindow(Window *window);
  77.         virtual void DoClick(Point where,UInt32 modifiers,WindowPtr window,SInt32 part);
  78.         virtual void DoIdleTime(EventRecord *event,Point mouse,UInt32 modifiers);
  79.         virtual void DoActivation(WindowPtr window,Boolean isActivating);
  80.         virtual void DoSuspendResume(EventRecord *event,Boolean isSuspend);
  81.         
  82.         virtual Window *DoGetFrontWindow(void);
  83.         virtual Window *DoGetNextWindow(Window *window);
  84.         virtual Window *DoGetWindow(WindowPtr window);
  85. } BaseWindowManager;
  86.  
  87.  
  88. typedef class BaseWindow : public Window
  89. {
  90.     public:
  91.         BaseWindow(void);
  92.         BaseWindow(UInt32 windowID);
  93.         BaseWindow(Boolean isFloatingWindow,short procID,Boolean goAwayFlag);
  94.         virtual ~BaseWindow(void);
  95.         
  96.         virtual Boolean DoGetParam(OSType param,SInt32 *value);
  97.         virtual Boolean DoSetParam(OSType param,SInt32 value);
  98.         virtual void DoDialogEvent(EventRecord *event);
  99.         virtual void DoClose(void);
  100.         virtual void DoKey(UInt32 key,UInt32 modifiers);
  101.         virtual void DoClick(Point where,UInt32 modifiers,SInt32 part);
  102.         virtual void DoUpdate(void);
  103.         virtual void DoUpdateCursor(Point mouse,UInt32 modifiers);
  104.         virtual void DoIdleTime(EventRecord *event,Point mouse,UInt32 modifiers);
  105.         virtual void DoSetActivationState(Boolean isActive);
  106.         virtual void DoSetSuspensionState(EventRecord *event,Boolean isSuspended);
  107.         
  108.         virtual Boolean HandleGetParam(OSType param,SInt32 *value);
  109.         virtual Boolean HandleSetParam(OSType param,SInt32 value);
  110.         virtual void HandleClose(void);
  111.         virtual void HandleZoomIn(void);
  112.         virtual void HandleZoomOut(void);
  113.         virtual void HandleDrag(Point start);
  114.         virtual void HandleMove(Point where);
  115.         virtual void HandleGrow(Point start);
  116.         virtual void HandleResize(UInt32 height,UInt32 width);
  117.         virtual void HandleKey(UInt32 key,UInt32 modifiers);
  118.         virtual void HandleClick(Point where,UInt32 modifiers);
  119.         virtual void HandleActivate(void);
  120.         virtual void HandleDeactivate(void);
  121.         virtual void HandleCursorUpdate(Point mouse,UInt32 modifiers);
  122.         virtual void HandleIdleTime(Point mouse,UInt32 modifiers);
  123.         virtual void HandleDraw(void);
  124. } BaseWindow;
  125.  
  126.  
  127. typedef class BaseDialog : public BaseWindow
  128. {
  129.     public:
  130.         DialogPtr    fDialog;
  131.         
  132.         BaseDialog(UInt32 dialogID,Boolean isModal);
  133.         virtual ~BaseDialog(void);
  134.         
  135.         virtual void DoDialogEvent(EventRecord *event);
  136.         
  137.         virtual void HandleDialogEvent(EventRecord *event);
  138.         virtual Boolean HandleDialogEventFilter(EventRecord *event);
  139.         virtual void HandleDialogItemhit(short item);
  140.         virtual Boolean HandleOKButtonHiliteQuery(void);
  141.         
  142.         virtual void DrawThickOutline(short item);
  143.         virtual void SetOKState(Boolean isActive);
  144.         virtual void AnimateButtonPress(short item);
  145.         virtual void GetItemText(short item,char *text);
  146.         virtual int GetItemTextAsDecimal(short item);
  147.         virtual void SetItemText(short item,char *text);
  148.         virtual void SetItemTextf(short item,char *format,...);
  149.         virtual void AppendItemText(short item,char *text);
  150.         virtual void AppendItemTextf(short item,char *format,...);
  151. } BaseDialog;
  152.  
  153.  
  154. #endif /* _WINDOW_ */
  155.